package q769_maxChunksToSorted;

public class Solution_1 {
    /*
    将数组分块后 依次排序并拼合最后仍然能够得到正确的排序数组
    因此需要考虑：
    该块所包含的 数字 是否正好就是 排序后数组 的对应的一段数字
    第一种方法 利用当前段落的最大值作为标记 当一个最大值标记恰好等于当前走到的索引位置时
    也就划分出来一个段落了

    下标： 0 1 2 | 3 4 | 5 6 7
    元素： 2 1 0 | 4 3 | 7 6 5
     */
    public int maxChunksToSorted(int[] arr) {
        int count = 0, max = -1;
        for (int i = 0; i < arr.length; i++) {
            max = Math.max(max, arr[i]);
            if (max == i) ++count;
        }
        return count;
    }
}
